package com.example.networklab.service;

import com.example.networklab.domain.dto.PageDTO;
import com.example.networklab.domain.po.Task;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.networklab.domain.query.PageQuery;
import com.example.networklab.domain.query.TeaTaskPageQuery;
import com.example.networklab.domain.req.AddOrEditTaskReq;
import com.example.networklab.domain.vo.*;

/**
 * <p>
 * 作业布置表 服务类
 * </p>
 *
 * @author dzw
 * @since 2025-02-27
 */
public interface ITaskService extends IService<Task> {

    void addTask(AddOrEditTaskReq addTaskRequest);

    void editTask(Long taskId, AddOrEditTaskReq addTaskRequest);

    PageDTO<TeaTaskVO> teaGetTaskList(TeaTaskPageQuery teaTaskPageQuery);

    DescCaseVO getTaskDescCase(Long taskId);

    PageDTO<StuTaskVO> stuGetTaskList(PageQuery pageQuery);

    DescVO getTaskSpec(Long taskId);

    void removeTask(Long taskId);
}
